1
Архитектура кода для масштабируемости и читаемости
AI034Lesson 7
00:00

Когда ваш код становится длиннее нескольких сотен строк, он превращается из простого скрипта в систему. Чтобы избежать перегрузки умственных способностей, Rust использует иерархическую систему модулей для разделения функциональности на логические, управляемые границы.

1. Необходимость масштабируемости

В крупной системе вам не нужно держать всю архитектуру в голове. Модули позволяют изолировать детали реализации, предоставляя только то, что необходимо, через публичный интерфейс.

Пакет: ресторанКорень крейтаsrc/lib.rs (библиотека)Корень крейтаsrc/main.rs (бинарный файл)

2. Двухкрейтовая архитектура

Один пакет на языке Rust пакет выступает в качестве контейнера. Он может содержать как библиотечный крейт (src/lib.rs), содержащий основную логику, так и бинарный крейт (src/main.rs), являющийся точкой входа исполняемой программы. Это обеспечивает чёткое разделение между чем система делает и как пользователь взаимодействует с ней.

3. Основы организации

Инициализируя проект командой cargo new --lib, вы делаете акцент на модульности. В системе управления рестораном «Фронт-офис» (приём гостей) и «Бэк-офис» (кухня) разделяются, что позволяет нескольким фронтендам (CLI, веб, мобильные приложения) использовать одну и ту же основную логику библиотеки.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>